今天小妹久違的去游了一波泳,好懷念學校20塊的游泳池啊~~~ 覺得除了研究技術以外,擁有健康的身體也是非常重要的呢!
好的那麼今天來到了srv的部分,也就是自定義一種service的格式啦! 因為service其實就是一組分成request和response的message,所以設定的方法跟之前.msg file的一樣,因此我們就直接來建立一個新的.srv檔就好囉!
$ roscd beginner_tutorials
$ mkdir srv
$ cd srv
$ vim my_srv.srv
注意: srv檔要放在/srv的資料夾內,這樣在做catkin_make的時候才會撈的到資料喔!
那我想要做的service就是可以讓我輸入一個id,就可以找到某個人的個資!
所以我設計的my_srv.srv會長這樣:
int64 id
---
string name
string gender
int64 age
大概會長這樣吧~就是輸入某個人的id,就可以知道他的名字、性別跟年紀。
接著找到CMakeList.txt內關於編譯新srv檔的註解:
# add_service_files(
# FILES
# Service1.srv
# Service2.srv
# )
將這些註解打開,並加入我們的my_srv.srv檔案,所以改完以後會長這樣:
add_service_files(
FILES
my_srv.srv
)
設定完以後,回到package的根目錄執行catkin_make,就可以看到他自動幫我們建立my_srv格式的service囉!
可以看到跟之前message一樣,建立了很多不同語言可以使用的service,是不是很方便呢!
使用rossrv list指令可以看到所有的service格式的訊息,這邊可以看到他已經幫我們在beginner_tutorials底下建立好了my_srv囉!
使用rossrv show 去看這個srv,就可以看到關於此格式的訊息定義,也就是我們剛剛上面設定的request和response各給哪些資料:
建完以後當然就是拿來用啦! 做法跟message的時候一樣,就是include/import那個模組,然後就可以使用囉! 那因為基本上跟之前做service的時候用的add_two_ints一樣,我想大家應該可以自己玩看看才對,絕對不是因為今天時間不夠的關係喔 XD